﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using LevenBlog.Core.Entities;

namespace LevenBlog.Core.Data
{
    public interface IUser
    {
        int Count(IDbProvider provider);

        int CountForSearch(IDbProvider provider, string searchName);

        int CountForTypeID(IDbProvider provider, int typeid);

        int Insert(IDbProvider provider, lb_user user);

        void Update(IDbProvider provider, lb_user user);

        void Delete(IDbProvider provider, int id);

        void Delete(IDbProvider provider, string name);

        lb_user Get(IDbProvider provider, int id);

        lb_user Get(IDbProvider provider, string name);

        IList<lb_user> Get(IDbProvider provider, int pageSize, int currentPage);

        IList<lb_user> GetFromTypeID(IDbProvider provider, int typeid);

        IList<lb_user> Get(IDbProvider provider, int typeid, int pageSize, int currentPage);

        IList<lb_user> Search(IDbProvider provider, string searchName, int pageSize, int currentPage);

        IList<lb_user> GetAll(IDbProvider provider, int pageSize, int currentPage);

        IList<lb_user> SearchAll(IDbProvider provider, string searchName, int pageSize, int currentPage);

        IList<string> GetMail(IDbProvider provider, int[] idArray);
    }
}
